package com.cloudbroker.bcs.platform.dav.bizapi.t2service.viewpoint;

import com.cloudbroker.bcs.common.entity.HSBCPSBackVO;
import com.cloudbroker.bcs.platform.dav.bizapi.constants.IFSFunctionIdsNew;
import com.cloudbroker.bcs.platform.dav.bizapi.constants.IFSFunctionIdsNew.IFSDavViewPointFuncIds;
import com.cloudbroker.bcs.platform.dav.bizapi.service.base.vo.HSBCPSVO;
import com.cloudbroker.bcs.platform.dav.bizapi.service.base.vo.ListQueryVO;
import com.cloudbroker.bcs.platform.dav.bizapi.service.business.system.back.SelfViewpointBack;
import com.cloudbroker.bcs.platform.dav.bizapi.service.business.system.back.SelfViewpointResult;
import com.cloudbroker.bcs.platform.dav.bizapi.service.business.system.vo.*;
import com.cloudbroker.bcs.platform.dav.bizapi.service.viewpoint.result.*;
import com.cloudbroker.bcs.platform.dav.bizapi.service.viewpoint.vo.*;
import com.hundsun.jresplus.remoting.impl.annotation.Service;
import com.hundsun.jresplus.remoting.impl.annotation.ServiceModule;
import com.hundsun.jresplus.remoting.impl.annotation.ServiceParam;

@ServiceModule
public interface ViewPointT2BizService {
    
    @Service(functionId = IFSDavViewPointFuncIds.FUNC_VIEWPOINT_LIST_BY_FANS, desc = "观点列表")
    public ViewpointFansList funcViewpointListByFans(@ServiceParam("param") ViewpointListForm param);
    
    @Service(functionId = IFSDavViewPointFuncIds.FUNC_COMMENT_VIEW_NO_LOGIN, desc = "评论详情页面（无登录）")
    public ViewpointCommentResult funcCommentViewNologin(@ServiceParam("param") ViewpointCommentForm param);
    
    @Service(functionId = IFSDavViewPointFuncIds.FUNC_COMMENT_VIEW, desc = "评论详情页面")
    public ViewpointCommentResult funcCommentView(@ServiceParam("param") ViewpointCommentForm param);
    
    @Service(functionId = IFSDavViewPointFuncIds.FUNC_COMMENT_SAVE, desc = "发表评论")
    public CommentSaveResult funcCommentSave(@ServiceParam("param") ViewpointCommentSaveForm param);
    
    @Service(functionId = IFSDavViewPointFuncIds.FUNC_COMMENT_SPITSLOT_UPVOTE, desc = "大V观点评论吐槽和点赞")
    public ViewpointSpitslotUpvoteResult funcCommentSpitslotUpvote(
            @ServiceParam("param") ViewpointSpitslotUpvoteForm param);
    
    @Service(functionId = IFSDavViewPointFuncIds.FUNC_VIEWPOINT_REPLAY_DETAIL_LIST, desc = "查看引用详细")
    public ReplyListData funcViewpointReplayDetailList(@ServiceParam("param") ReplyListForm param);
    
    @Service(functionId = IFSDavViewPointFuncIds.FUNC_VIEWPOINT_CONTENT, desc = "获取单个观点内容")
    public ViewpointContentData funcViewpointContent(@ServiceParam("param") ViewPointIdForm param);
    
    @Service(functionId = IFSDavViewPointFuncIds.FUNC_COMMENT_VIEW_BY_BROKER, desc = "评论详情页面")
    public ViewpointCommentResult funcCommentViewByBroker(ViewpointCommentForm param);
    
    @Service(functionId = IFSDavViewPointFuncIds.FUNC_VIEWPOINT_CONTENT_CONVERT, desc = "评论详情页面")
    public HSBCPSBackVO funcViewpointContentConvert(HSBCPSVO form);
    
    @Service(functionId = IFSDavViewPointFuncIds.FUNC_VIEWPOINTLIST_BY_TENANT, desc = "租户观点列表")
    public ViewpointNoLoginList funcViewpointListByTenant(ListQueryVO form);
    
    @Service(functionId = IFSDavViewPointFuncIds.FUNC_VIEWPOINTLIST_BY_TENANT_NOLOGIN, desc = "未登录获取租户观点列表")
    public ViewpointNoLoginList funcViewpointListByTenantNologin(TenantKeyListQryForm form);

    /**
     * 获取自媒体观点管理列表
     * @param form
     * @return
     */
    @Service(functionId = IFSFunctionIdsNew.IFSDavViewPointFuncIds.FUNC_SELF_VIEWPOINT_LIST, desc = "获取自媒体观点管理列表")
    public SelfViewpointResult funcSelfViewpointsList(SelfViewpointForm form);

    /**
     * 获取单个自媒体观点的详情z
     *
     * @param form
     * @return
     */
    @Service(functionId = IFSFunctionIdsNew.IFSDavViewPointFuncIds.FUNC_SELF_VIEWPOINT_BY_ID, desc = "获取自媒体观点管理列表")
    public SelfViewpointBack funcSelfViewpointById(SelfViewpointByIdForm form);

    /**
     * 是否开启自媒体观点审核
     * @param form
     * @return
     */
    @Service(functionId = IFSDavViewPointFuncIds.FUNC_SELF_VIEWPOINT_REVIEW, desc = "是否开启自媒体观点审核")
    public HSBCPSBackVO funcSelfViewpointReview(SelfViewpointReviewForm form);

    /**
     * 自媒体观点是否通过审核
     * @param form
     * @return
     */
    @Service(functionId = IFSDavViewPointFuncIds.FUNC_SELF_VIEWPOINT_STATUS, desc = "自媒体观点是否通过审核")
    public HSBCPSBackVO funcSelfViewpointReviewStatus(SelfViewpointStatusForm form);

    /**
     * 粉丝端动态推送列表
     * @param form
     * @return
     */
    @Service(functionId = IFSDavViewPointFuncIds.FUNC_GET_DYNAMIC_LIST, desc = "粉丝端动态推送列表")
    public DynamicListResult funcGetDynamicList(DynamicListForm form);

    /**
     * 粉丝端动态组合的当日成交列表
     * @param form
     * @return
     */
    @Service(functionId = IFSDavViewPointFuncIds.FUNC_LTB_REALTIME_QRY_LOAD_MORE, desc = "粉丝端动态组合的当日成交列表")
    public LTBRealtimeQryResult funcRealtimeQryLoadMore(LTBRealtimeQryListForm form);

}
